requirejs(['jquery', 'Util', 'bootstrap', 'metisMenu', 'slimScroll', 'inspinia', 'uploadify', 'chosen'], function ($, Util) {

    (function () {
        $.getJSON('/static/js/cityData.min.json', function (ret) {
            var str = '';
            $.each(ret, function (i, item) {
                if (item.n == '广东省') {
                    str += '<option value="' + item.n + '" selected>' + item.n + '</option>';
                }
                str += '<option value="' + item.n + '">' + item.n + '</option>';
            });

            $(str).appendTo($('#area-province-chosen'));

            $('.province-chosen-select').chosen({
                width: '100%',
                allow_single_deselect: true,
                disable_search_threshold: 10,
                no_results_text: "未找到对应省市!"
            }).change(function () {
                var province = $(this).val();
                $.each(ret, function (i, item) {
                    if (item.n == province) {
                        var tmp = '';
                        $.each(item.s, function (index, city) {
                            tmp += '<option value="' + city.n + '">' + city.n + '</option>';
                        });
                        $('.city-chosen-select').empty();
                        $(tmp).appendTo($('.city-chosen-select'));
                        $('.city-chosen-select').trigger("chosen:updated");
                    }
                });
            }).trigger('change');

            $('.city-chosen-select').chosen({
                width: '100%',
                allow_single_deselect: true,
                disable_search_threshold: 10,
                no_results_text: "未找到对应省市!"
            }).change(function () {
                $('#cityData').val(($(this).val()).join(','));
            });

        });
    })();

    /**
     * 上传控件DOM元素集合
     * @type Array
     */
    var uploadList = ['shop_img_0', 'shop_img_1', 'shop_img_2', 'shop_img_3'];

    initUploadify(uploadList);

    /**
     * 初始化上传控件
     * @param {type} nodeList
     * @returns {undefined}
     */
    function initUploadify(nodeList) {
        $.each(nodeList, function (i, item) {
            var $node = $('#' + item);
            var $cover = $node.siblings('div.shop-img-cover');
            var $input = $('input[name=' + item + ']');
            $node.uploadify({
                'debug': false,
                'auto': true,
                'width': 200,
                'height': 100,
                'buttonClass': 'uploadify-btn',
                'buttonText': '上传图片',
                'successTimeout': 99999,
                'swf': "/static/js/plugins/uploadify/uploadify.swf",
                'fileObjName': 'uploadFile',
                'uploader': '/console/shopUpload/',
                'fileTypeDesc': '支持的格式：*.jpg;*.jpge;*.gif;*.png',
                'fileTypeExts': '*.jpg;*.jpge;*.gif;*.png',
                'fileSizeLimit': '3MB',
                'queueSizeLimit': 25,
                'onSelectError': function (file, errorCode, errorMsg) {
                    switch (errorCode) {
                        case -100:
                            Util.Alert("上传的文件数量已经超出系统限制的" + $('#file_upload').uploadify('settings', 'queueSizeLimit') + "个文件！", true);
                            break;
                        case -110:
                            Util.Alert("文件 [" + file.name + "] 大小超出系统限制的" + $('#file_upload').uploadify('settings', 'fileSizeLimit') + "大小！", true);
                            break;
                        case -120:
                            Util.Alert("文件 [" + file.name + "] 大小异常！", true);
                            break;
                        case -130:
                            Util.Alert("文件 [" + file.name + "] 类型不正确！", true);
                            break;
                    }
                },
                'onFallback': function () {
                    alert("您未安装FLASH控件，无法上传图片！请安装FLASH控件后再试。");
                },
                'onUploadSuccess': function (file, data, response) {
                    var ret = $.parseJSON(data);
                    if (ret.ret_msg === 'failed') {
                        Util.Alert('上传失败!', true);
                    } else {
                        var src = '/uploads/shop/' + ret.ret_msg;
                        var imgNode = '<img style="width: 200px;height:100px;" src="' + src + '"/>';
                        $cover.empty();
                        $cover.html(imgNode);
                        $input.val(src);
                        Util.Alert('上传成功!');
                    }
                }
            });
        });
    }

    /**
     * 保存按钮点击
     */
    $('#save-btn').on('click', function () {

        var i = 4;//需要上传图片总数
        $('input[type="hidden"]').each(function (index, node) {
            if ($(node).val() != '') {
                i--;
            }
        });

        if (i > 3) {
            Util.Alert('请至少上传一张图片!', true);
        } else {
            $('form').submit();
        }

    });


});

